<template>
        <section>
            <!--工具条-->
            
            <div class="section-content clearfix">
            <el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
                <el-form @submit.native.prevent :inline="true" :model="filters">
                    <!-- <el-form-item style="float: left;">
                        <el-input v-model="filters.name" placeholder="终端用户名" @keyup.enter.native="getUsers()"></el-input>
                    </el-form-item> -->
                    <el-form-item class="tool-bt">
                        <el-button :type="buttonColor" v-on:click="getUsers">查询</el-button>
                    </el-form-item>
                    <el-form-item v-if="menubt.indexOf('/terminal_user/post')>-1">
                        <el-button :type="buttonColor" @click="handleAdd">新增</el-button>
                    </el-form-item>
                </el-form>
            </el-col>
    
            <!--列表-->
            <el-table :data="query" highlight-current-row v-loading="listLoading" @selection-change="selsChange" :header-row-style="{backgroundColor: titleColor}" style="width: 100%;">
                <!-- <el-table-column type="selection" >
                </el-table-column> -->
                <el-table-column align="center" type="index" label="序号"  width="80":index="indexMethod">
                </el-table-column>
                <!-- <el-table-column align="center" prop="name" label="终端用户名"  >
                </el-table-column> -->
                <el-table-column align="center" prop="phone" label="电话号码"   >
                </el-table-column>
                <el-table-column align="center" prop="contactName" label="联系人" >
                        </el-table-column>
                <el-table-column align="center"  label="备注"  prop="remark" >
                </el-table-column>
              
                <el-table-column align="center" prop="updateTime" label="更新时间">
                </el-table-column>
            
                <el-table-column align="center" label="操作">
                    <template scope="scope">
                        <!-- <el-button size="small" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
                        <el-button type="danger" size="small" @click="handleDel(scope.$index, scope.row)">删除</el-button> -->
                        <i v-if="menubt.indexOf('/terminal_user/put')>-1" @click="handleEdit(scope.$index, scope.row)" title="编辑" icon="el-icon-edit"
                        circle class="pb-icon icon-edit"></i>
                        <i v-if="menubt.indexOf('/terminal_user/delete')>-1" @click="handleDel(scope.$index, scope.row)" icon="el-icon-delete"
                        circle title="删除" class="pb-icon icon-delete"></i>
                    </template>
                </el-table-column>
            </el-table>
    
            <!--工具条-->
            <el-col :span="24" class="toolbar">
                <!-- <el-button type="danger" @click="batchRemove" :disabled="this.sels.length===0">批量删除</el-button> -->
                <el-pagination layout="prev, pager, next" @current-change="handleCurrentChange" :page-size="10" :total="total"
                    style="float:right;">
                </el-pagination>
            </el-col>
    </div>
            <!--编辑界面-->
            <el-dialog title="编辑" v-show="editFormVisible" v-model="editFormVisible" :custom-class="dialogTitleColor" @close="editFormVisible=false">
                <div slot="footer" style="text-align: left; ">
                
                    <el-form @submit.native.prevent :model="editForm" label-width="100px" :rules="addFormRules" ref="editForm">
                            <el-form-item label="名称" prop="name">
                                <el-input v-model="editForm.name" auto-complete="off"></el-input>
                            </el-form-item>
                            <el-form-item label="联系人" >
                                    <el-input v-model="editForm.contactName" auto-complete="off"></el-input>
                                </el-form-item>
                            <el-form-item label="联系方式">
                                <el-input type="number" v-model="editForm.phone"></el-input>
                            </el-form-item>
                        
                                <el-form-item label="备注" prop="remark">
                                    <el-input type="textarea" v-model="editForm.remark"></el-input>
                                </el-form-item>
        
                        </el-form>
                    <div slot="footer" class="dialog-footer" style="text-align:right;">
                        <el-button @click.native="editFormVisible = false">取消</el-button>
                        <el-button :type="buttonColor" @click.native="editSubmit" :loading="editLoading">提交</el-button>
                    </div>
                </div>
            </el-dialog>
    
            <!--新增界面-->
            <el-dialog title="新增" v-show="addFormVisible" v-model="addFormVisible" :custom-class="dialogTitleColor" @close="addFormVisible=false">
                <div slot="footer" style="text-align: left; ">
                    <el-form @submit.native.prevent :model="addForm" label-width="100px" :rules="addFormRules" ref="addForm">
                        <el-form-item label="名称" prop="name">
                            <el-input v-model="addForm.name" auto-complete="off"></el-input>
                        </el-form-item>
                        <el-form-item label="联系人" >
                                <el-input v-model="addForm.contactName" ></el-input>
                            </el-form-item>
                        <el-form-item label="联系方式">
                            <el-input type="number" v-model="addForm.phone"></el-input>
                        </el-form-item>
                    
                            <el-form-item label="备注" prop="remark">
                                <el-input type="textarea" v-model="addForm.remark"></el-input>
                            </el-form-item>
    
                    </el-form>
                    <div slot="footer" class="dialog-footer" style="text-align: right;">
                        <el-button @click.native="addFormVisible = false">取消</el-button>
                        <el-button :type="buttonColor" @click.native="addSubmit" :loading="addLoading">提交</el-button>
                    </div>
                </div>
            </el-dialog>
        </section>
    </template>
    
    <script>
        // import util from './../common/js/util'
        //import NProgress from 'nprogress'
        import {
            terminal_user_query,
            terminal_user_put,
            terminal_user_post,
            terminal_user_get,
            terminal_user_delete,
        } from '../../api/api';
    
        export default {
            data() {
                return {
                    filters: {
                        name: ''
                    },
                    query: [],
                    total: 0,
                    page: 1,
                    listLoading: false,
                    sels: [], //列表选中列
    
                    editFormVisible: false, //编辑界面是否显示
                    editLoading: false,
                    editFormRules: {
                        name: [{
                            required: true,
                            message: '请输入姓名',
                            trigger: 'blur'
                        },{ min: 1, max: 20, message: '长度在 1 到 20 个字符', trigger: 'blur' }]
                    },
                    //编辑界面数据
                    editForm: {
                        id: '',
                        name: '',
                        phone: '',
                        contactName: '',
                        remark: ''
                     
                    },
    
                    addFormVisible: false, //新增界面是否显示
                    addLoading: false,
                    addFormRules: {
                        name: [{
                            required: true,
                            message: '请输入姓名',
                            trigger: 'blur'
                        },{ min: 1, max: 20, message: '长度在 1 到 20 个字符', trigger: 'blur' }],
                        path: [{
                                required: true,
                                message: '请输入path',
                                trigger: 'blur'
                            }
    
                        ]
                    },
                    //新增界面数据
                    addForm: {
                        name: '',
                        phone: '',
                        contactName: '',
                        remark: ''
                    }
    
                }
            },
            computed:{
                buttonColor(){
                    return this.$store.state.buttonColor
                },
                titleColor(){
                    return this.$store.state.titleColor
                },
                dialogTitleColor(){
                    return this.$store.state.dialogTitleColor
                },
            },
            methods: {
                indexMethod(index) {
                console.log(this.page)
                let num = (this.page - 1) * 10 + index + 1;
                return num;
            },
                //性别显示转换
                formatSex: function (row, column) {
                    return row.sex == 1 ? '男' : row.sex == 0 ? '女' : '未知';
                },
                handleCurrentChange(val) {
                    this.page = val;
                    this.getUsers();
                },
                //获取菜单列表
                getUsers() {
                   // if(this.menubt.indexOf('/terminal_user/query')==-1){
                  //  this.$message({
                              //  message: '您没有查询终端用户的权限',
                              //  type: 'warning'
                           // });
                           // return false;
               // }
                    let para = {
                        pageNo: this.page,
                        pageSize: 10,
                        name:this.filters.name
                    };
                    this.listLoading = true;
                    //NProgress.start();
                    terminal_user_query(para).then((res) => { this.begCode (res.code);
                        this.total = res.data.totalCount;
                        this.query = res.data.list;
                        
                        this.page=res.data.pageNo;
                        this.listLoading = false;
                        //NProgress.done();
                    });
                },
                //删除
                handleDel: function (index, row) {
                 
                    this.$confirm('确认删除吗?', '提示', {
                        type: 'warning'
                    }).then(() => {
                        this.listLoading = true;
                        //NProgress.start();
                        let para = {
                            idList: [row.id]
                        };
                        terminal_user_delete(para).then((res) => { 
                            this.begCode (res.code);
                            if (res.code == 0) {
    
                                this.listLoading = false;
                                //NProgress.done();
                                this.$message({
                                    message: '删除成功',
                                    type: 'success'
                                });
                                this.getUsers();
    
                            }
                        });
                    }).catch(() => {
    
                    });
                },
                //显示编辑界面
                handleEdit: function (index, row) {
                
                    this.editFormVisible = true;
                    this.editForm = Object.assign({}, row);
                },
                //显示新增界面
                handleAdd: function () {
                  
                    this.addFormVisible = true;
                    this.addForm = {
                        name: '',
                        phone: '',
                        contactName: '',
                        remark: '',
                    };
                },
                //编辑
                editSubmit: function () {
                    this.$refs.editForm.validate((valid) => {
                        if (valid) {
                            this.$confirm('确认提交吗？', '提示', {}).then(() => {
                                this.editLoading = true;
                                //NProgress.start();
                                let para = Object.assign({}, this.editForm);
                             
                                terminal_user_put(para).then((res) => { this.begCode (res.code);
                                
                                    if (res.code == 0) {
                                        this.editLoading = false;
                                        //NProgress.done();
                                        this.$message({
                                            message: '提交成功',
                                            type: 'success'
                                        });
                                        this.$refs['editForm'].resetFields();
                                        this.editFormVisible = false;
                                        this.getUsers();
                                    }
                                });
                            });
                        }
                    });
                },
                //新增
                addSubmit: function () {
                    this.$refs.addForm.validate((valid) => {
                        if (valid) {
                            this.$confirm('确认提交吗？', '提示', {}).then(() => {
                                this.addLoading = true;
                                //NProgress.start();
                                let para = Object.assign({}, this.addForm);
    
                                terminal_user_post(para).then((res) => { 
                                    this.begCode (res.code,res.message);

                                    this.addLoading = false;
                                    
                                    if (res.code == 0) {
                                    //NProgress.done();
                                    this.$message({
                                        message: '新增成功',
                                        type: 'success'
                                    });
                                    this.$refs['addForm'].resetFields();
                                    this.addFormVisible = false;
                                    this.getUsers();
                                }
                                });
                            });
                        }
                    });
                },
                selsChange: function (sels) {
                    this.sels = sels;
                },
                //批量删除
                batchRemove: function () {
                  
                    var ids = this.sels.map(item => item.id).toString();
                    this.$confirm('确认删除选中记录吗？', '提示', {
                        type: 'warning'
                    }).then(() => {
                        this.listLoading = true;
                        //NProgress.start();
                        let para = {
                            idList: ids
                        };
                        terminal_user_delete(para).then((res) => { this.begCode (res.code);
                            this.listLoading = false;
                            //NProgress.done();
                            this.$message({
                                message: '删除成功',
                                type: 'success'
                            });
                            this.getUsers();
                        });
                    }).catch(() => {
    
                    });
                }
            },
            mounted() {
            this.menubt=localStorage.getItem('menubt');
                this.getUsers();
            }
        }
    </script>
    
    <style scoped>
    
    </style>